

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.activation.*;
import javax.mail.*;
 
public class GoogleMail {
	
	private GoogleMail() {
		
	}
	
	public static void Send(final String usuario,final String contraseña,String receptor
			,String asunto,String mensaje,String caminoAdjunto,String nombreArchivo) {
		
		Properties props = new Properties();
		props.put("mail.smtp.host", "smtp.gmail.com");
		props.put("mail.smtp.socketFactory.port", "465");
		props.put("mail.smtp.socketFactory.class",
				"javax.net.ssl.SSLSocketFactory");
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.port", "465");
 
		Session session = Session.getDefaultInstance(props,
			new javax.mail.Authenticator() {
				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(usuario,contraseña);
				}
			});
 
		try {
 
			Message message = new MimeMessage(session);
			message.setFrom(new InternetAddress(usuario));
			message.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse(receptor));
			message.setSubject(asunto);
			message.setText(mensaje);
			
			MimeBodyPart messageBodyPart = new MimeBodyPart();

	        Multipart multipart = new MimeMultipart();

	        messageBodyPart = new MimeBodyPart();
	        DataSource source = new FileDataSource(caminoAdjunto);
	        messageBodyPart.setDataHandler(new DataHandler(source));
	        messageBodyPart.setFileName(nombreArchivo);
	        multipart.addBodyPart(messageBodyPart);

	        message.setContent(multipart);
 
			Transport.send(message);

		} catch (MessagingException e) {
			throw new RuntimeException(e);
		}
	}
}